package done.easy_301_400;

import org.junit.Test;

import static com.study.util.LogUtil.info;
import static com.study.util.SwapUtil.swap;

/**
 * 345. Reverse Vowels of a String 反转字符串中的元音字母
 * <p>
 * 编写一个函数，以字符串作为输入，反转该字符串中的元音字母。
 * <p>
 * 示例 1:
 * 输入: "hello"
 * 输出: "holle"
 * 示例 2:
 * 输入: "leetcode"
 * 输出: "leotcede"
 * 说明:
 * 元音字母不包含字母"y"。
 * 2019-04-14 4:21 PM
 **/
@SuppressWarnings("all")
public class ReverseVowelsOfAString {

    public String reverseVowels(String s) {
        // 190414 first
        return null;
    }

    @Test
    public void test() {
        info(reverseVowels("hello"));
    }
}































/*
public String reverseVowels(String s) {
    HashSet<Character> set = new HashSet<>(
            Arrays.asList('a', 'e', 'i', 'o', 'u', 'A', 'E', 'I', 'O', 'U'));
    //把字符串转换成字符数组，方便之后交换字母
    char[] res = s.toCharArray();
    int i = 0;
    int j = res.length - 1;
    while (i < j) {

        while (i < j && !set.contains(res[i])) {
            i++;
        }

        while (i < j && !set.contains(res[j])) {
            j--;
        }

        //此时停留的位置有两种情况，一种是i=j了，另一种是i和j都停在元音的位置
        //不管是哪种情况，执行下面的交换俩位置的字母都没问题
        swap(res, i, j);

        i++;
        j--;
    }
    return new String(res);
}
*/
